using System;

class Program
{
    static void Main()
    {
        Console.Write("Lūdzu, ievadiet tekstu:  ");
        string input = Console.ReadLine();

        // Izvada tekstu ar vardiem preteja virziena + Pirma
        string reversedvardi = Reverse1(input);
        Console.WriteLine("samainiti vardi:  " + CapitalizeFirstLetter(reversedvardi));

        // Izvada tekstu pretējā virzienā un samainītu reversā veidā
        string reversedText = Reverse2(input);
        Console.WriteLine("vardi preteja virziena:   " + CapitalizeFirstLetter(reversedText));

        // Izvada tekstu sākot no vidus, katrā ciklā parādot pa vienam burtam abās pusē
        CenteredDisplay(input);

        // Aizstāj pa vienam simbolam abās pusēs ar tukšumu
        ReplaceWithSpaces(input);

        // Rāda burtus no beigām līdz sākuma burtam
        ReverseDisplayFromEnd(input);
    }

    static string Reverse1(string input)
    {
        string[] vardi = input.Split(' ');
        Array.Reverse(vardi);
        return string.Join(" ", vardi);
    }

    static string Reverse2(string input)
    {
        char[] charArray = input.ToCharArray();
        Array.Reverse(charArray);
        return new string(charArray);
    }

    static void CenteredDisplay(string input)
    {
        int length = input.Length;
        int mid = length / 2;

        for (int i = 0; i <= mid; i++)
        {
            string left = input.Substring(mid - i, i + 1);
            string right = (i < mid) ? input.Substring(mid + 1 + i) : "";
            Console.WriteLine(left + right);
        }
    }

    static void ReplaceWithSpaces(string input)
    {
        char[] chars = input.ToCharArray();
        int left = 0;
        int right = chars.Length - 1;

        while (left <= right)
        {
            chars[left] = ' ';
            if (left != right) // parbauda lai laba un kreisa puse nebija uzskatita ka vienada
            {
                chars[right] = ' ';
            }
            Console.WriteLine(new string(chars));
            left++;
            right--;
        }
    }

    static void ReverseDisplayFromEnd(string input)
    {
        for (int i = input.Length - 1; i >= 0; i--)
        {
            Console.WriteLine(input.Substring(i, 1));
        }
    }

    static string CapitalizeFirstLetter(string input)
    {
        if (string.IsNullOrEmpty(input))
            return input;

        return char.ToUpper(input[0]) + input.Substring(1);
    }
}